paddlepaddle

您所在的位置:网站首页 linux cuda 安装 paddlepaddle

paddlepaddle

2023-04-24 13:50| 来源: 网络整理| 查看: 265

@ZOUG 这个问题应该是conda安装的问题,没有将相应的安装信息添加到PATH环境变量里,可以手动在环境变量PATH里添加。或者重新安装conda时,勾选添加到系统环境变量相应的选项

@zhouwei25 我的主贴里特地强调了这个问题,你还是没理解。我举例详细说明一下吧。

假设我在Windows上安装了Anaconda,安装路径为D:\Software\Anaconda。那么conda可执行文件_conda.exe,以及conda的base环境默认会在这个目录下。如果在安装时添加环境变量,那么安装程序会将D:\Software\Anaconda、D:\Software\Anaconda\Library\bin等目录添加到PATH环境变量中。

现在我要新建一个包含paddle的开发环境,起名为paddle1。我在conda命令行里执行conda create --name paddle1 paddlepaddle-gpu==2.4.2 cudatoolkit=11.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge。这时候系统会将这个环境相关的文件都放在%USERPROFILE%\.conda\envs\paddle1\目录下。其中cudnn库的默认路径为%USERPROFILE%\.conda\envs\paddle1\Library\bin\cudnn64_8.dll。因此,安装阶段添加的环境变量无法帮助找到cudnn库的正确位置!! 假如要让paddle正常运行,我必须人工将%USERPROFILE%\.conda\envs\paddle1\Library\bin加入PATH变量。

接下来,我因为开发需要又建立了一个包含paddle的环境,起名为paddle2。我执行conda create --name paddle2 paddlepaddle-gpu==2.4.2 cudatoolkit=11.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge。那么,在这个环境里的cudnn库的默认路径是%USERPROFILE%\.conda\envs\paddle2\Library\bin\cudnn64_8.dll。这种情况下,假如%USERPROFILE%\.conda\envs\paddle1\Library\bin仍然在PATH变量里,那么paddle在启动时会去找paddle1环境里的cudnn64_8.dll,这是我们不希望看到的! 因为,这种情况下,我如果删除了paddle1环境,所有依赖于paddle的程序在paddle2环境里都无法执行了!!

再接下来,我因为开发需要又要新建一个包含paddle的环境,起名为paddle3。在这个环境里我需要安装其它工具包。由于兼容性要求,我必须要选择CUDA 10.2而不能选择CUDA 11.2。那么我会执行conda create --name paddle3 paddlepaddle-gpu==2.4.2 cudatoolkit=10.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge。那么,在这个环境里的cudnn库的默认路径是%USERPROFILE%\.conda\envs\paddle3\Library\bin\cudnn64_7.dll。这种情况下,假如%USERPROFILE%\.conda\envs\paddle1\Library\bin仍然在PATH变量里,那么paddle在启动时会去paddle1环境里找cudnn64_7.dll,这也是我们不希望看到的! 因为,paddle1环境里安装的是cudnn 8,根本就没有cudnn 7!!

也就是说,一旦使用了conda,cudnn库的位置是不固定的。简单地往PATH变量里加一个固定的路径是无法解决问题的!! 必须在程序启动时根据运行环境动态找到正确的路径,把它加到当前程序的PATH变量里去(注意,这个操作只会改变当前程序的PATH变量,对其它程序没有影响),才能调用正确的cudnn库。

另外补充一句,%USERPROFILE%\.conda是系统默认的conda环境安装位置。由于conda环境占用硬盘空间巨大,如果我的系统盘不够用,是可以修改conda配置文件将环境路径设置到其它位置的,所以我在上面的临时解决方案程序里没有直接写死环境路径,而是通过当前启动的Python Interpreter路径sys.executable出发去找到正确cudnn库路径。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3